
/**
\file
Typedefs for the most common math types used throughout sun and rainbow.
\author Sean Tromans
*/

#ifndef	SUN_MATH_HPP
#define	SUN_MATH_HPP

#include <needs_more_ninja/template/math/math.hpp>

namespace sun
{
	namespace math = nmn::math;
}

typedef sun::math::vector<float, 2> vec2;
typedef sun::math::vector<float, 3> vec3;
typedef sun::math::vector<float, 4> vec4;

typedef sun::math::vector<bool, 2> bvec2;
typedef sun::math::vector<bool, 3> bvec3;
typedef sun::math::vector<bool, 4> bvec4;

typedef sun::math::vector<int, 2> ivec2;
typedef sun::math::vector<int, 3> ivec3;
typedef sun::math::vector<int, 4> ivec4;

typedef sun::math::vector<unsigned int, 2> uvec2;
typedef sun::math::vector<unsigned int, 3> uvec3;
typedef sun::math::vector<unsigned int, 4> uvec4;

typedef sun::math::quaternion<float> quat;

typedef sun::math::square_matrix<float, 2> mat2;
typedef sun::math::square_matrix<float, 3> mat3;
typedef sun::math::square_matrix<float, 4> mat4;

#endif	//SUN_MATH_HPP
